using System;
using System.Collections;

namespace OFX.Aggregator.Infrastructure
{
	public interface IIoCContainerAbstraction
	{
		void AddComponentInstance<T>(Type serviceType, object instance);
		void ReleaseComponent(object instance);

		T Resolve<T>();
		T Resolve<T>(IDictionary parameters);
		T Resolve<T>(string key);
		T Resolve<T>(string key, IDictionary parameters);
	}
}